
export default class TimeManage {

    private _run = false;

    /**游戏开始时间 */
    private _statTime = 0;

    /**服务器与本地时差 */
    private _difference = 0;

    /**开始游戏 */
    run(server: number) {

        if (this._run) return;

        this._run = true;
        this.syncTime(server);
        this._statTime = this.ms;
    }


    /**同步时间 */
    syncTime(server: number) {
        this._difference = server - Date.now();
    }


    /**服务器时间，单位 秒 */
    get second() {
        return Math.floor(this.ms / 1000);
    }

    /**服务器时间，单位 毫秒 */
    get ms() {
        return Date.now() + this._difference;
    }

    /**游戏运行时间 */
    get runTime() {
        return this.second - this._statTime;
    }

}